package com.hopu.v1.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 题目评论表
 * @TableName t_questions_comments
 */
@TableName(value ="t_questions_comments")
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@EqualsAndHashCode
public class CommentVo {
    /**
     * 主键ID，唯一标识
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 学生ID，关联学生信息表
     */
    private Integer studentId;

    /**
     * 题目ID，关联题目信息表
     */
    private Integer questionId;

    /**
     * 评价内容，学生对题目的评论或反馈
     */
    private String commentContent;

    /**
     * 父级评论ID，用于构建评论的层级关系，NULL表示顶级评论
     */
    private Integer pid;

    /**
     * 点选数，表示该评论被点赞的次数
     */
    private Integer likes;

    /**
     * 状态：0活跃 1已删除
     */
    private Integer status;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd ")
    private LocalDateTime createTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 学生姓名
     */
    @TableField(exist = false)
    private String nickName;

    @TableField(exist = false)
    private String parentNickName;

    /**
     * 头像
     */
    @TableField(exist = false)
    private String avatar;

    /**
     * 题目
     */
    @TableField(exist = false)
    private String questionTitle;

    /**
     * 父级评论
     */
    @TableField(exist = false)
    private String parentComment;

    /**
     * 当前学生对此评论是否点赞 1点赞  0未点赞
     */
    @TableField(exist = false)
    private Integer isLike;

    @TableField(exist = false)
    private List<CommentVo> replyList;
}
